1. Technical Field
The present invention relates generally to data processing systems and, more particularly, to systems and methods for providing managed sharing of audio data between multiple speech technologies.
2. Description of Related Art
Currently, there are many speech/audio processing systems in which audio data or processed speech data is stored in buffers for consumption and further processing by speech engines. The conventional systems, however, typically do not include mechanism for properly balancing the load on engines and managing the consumption of data from the buffers. For instance, in the area of telephony DSP (digital signal processing) cards, conventional systems include a hardware based TDM (time-division multiplexed) bus which carries speech data to single or multiple destinations. This architecture requires the use of dedicated chips to transport the signal as well as physical cards. These systems do not provide intelligent routing of the speech stream which may cause the speech stream to be transmitted twice to the same host.
In addition, in the area of embedded architectures, the currently existing systems have very limited capabilities. For example, these embedded systems typically operate by having an audio subsystem assigned temporarily to a specific conversational engine until the audio subsystem is released either by the engine, the controlling application or the underlying operating system.
Furthermore, conventional sound card systems, in general, capture an audio waveform and store the waveform in digitized form in a buffer. Typically, these systems are configured such that only one application will be consuming the content of the buffer at a given time. In specific cases, however, where an utterance is shared between different engines one of the following methods may be used. One method includes a hardware implementation of multiple parallel buffers on the sound card to which multiple engines could connect. Although such soundcard configuration is not commercially available at the present time, a hardware implementation would require adding the necessary circuitry to route the data stream to the aforementioned buffers. Such a system would not provide intelligent management of the consumption or tailoring of the systems resources according to the evolution of the speech sharing. With another method, a single buffer through one engine may be used which thereafter saves the utterance in a logged file for consumption by the other engines. These engines receive the file name and path information as handle to the data. Again, intelligent management of the data consumption in such an architecture is nonexistent.
Furthermore, with systems that generate output speech (playback or output from TTS), the output is typically sent to an output buffer that is consumed by a D/A converter of the audio subsystem. Such an approach typically does not provide management the output consumption, especially in conjunction with the input resource requirements when operating in a full duplex mode.
Accordingly, a system and method that provides intelligent routing and sharing of speech data for consumption by multiple engines operating in a given speech system is highly desirable.